module mux_8(inp,shift,outp);
input [7:0] inp;
input [2:0] shift;
output [7:0] outp;
wire  [7:0] outp,outp1,outp2;

assign  outp=inp<<shift;


/*
assign outp1[7]=shift[0]?inp[6]:inp[7];
assign outp1[6]=shift[0]?inp[5]:inp[6];
assign outp1[5]=shift[0]?inp[4]:inp[5];
assign outp1[4]=shift[0]?inp[3]:inp[4];
assign outp1[3]=shift[0]?inp[2]:inp[3];
assign outp1[2]=shift[0]?inp[1]:inp[2];
assign outp1[1]=shift[0]?inp[0]:inp[1];
assign outp1[0]=shift[0]?1'b0:inp[0];

assign outp2[7]=shift[1]?outp1[5]:outp1[7];
assign outp2[6]=shift[1]?outp1[4]:outp1[6];
assign outp2[5]=shift[1]?outp1[3]:outp1[5];
assign outp2[4]=shift[1]?outp1[2]:outp1[4];
assign outp2[3]=shift[1]?outp1[1]:outp1[3];
assign outp2[2]=shift[1]?outp1[0]:outp1[2];
assign outp2[1]=shift[1]?1'b0:outp1[1];
assign outp2[0]=shift[1]?1'b0:outp1[0];

assign outp[7]=shift[2]?outp2[3]:outp2[7];
assign outp[6]=shift[2]?outp2[2]:outp2[6];
assign outp[5]=shift[2]?outp2[1]:outp2[5];
assign outp[4]=shift[2]?outp2[0]:outp2[4];
assign outp[3]=shift[2]?1'b0:outp2[3];
assign outp[2]=shift[2]?1'b0:outp2[2];
assign outp[1]=shift[2]?1'b0:outp2[1];
assign outp[0]=shift[2]?1'b0:outp2[0];
*/
/*
MUX2_1 u1(outp1[7],inp[7],inp[6],shift[0]);
MUX2_1 u2(outp1[6],inp[6],inp[5],shift[0]);
MUX2_1 u3(outp1[5],inp[5],inp[4],shift[0]);
MUX2_1 u4(outp1[4],inp[4],inp[3],shift[0]);
MUX2_1 u5(outp1[3],inp[3],inp[2],shift[0]);
MUX2_1 u6(outp1[2],inp[2],inp[1],shift[0]);
MUX2_1 u7(outp1[1],inp[1],inp[0],shift[0]);
MUX2_1 u8(outp1[0],inp[0],0,shift[0]);

MUX2_1 t1(outp2[7],outp1[7],outp1[5],shift[1]);
MUX2_1 t2(outp2[6],outp1[6],outp1[4],shift[1]);
MUX2_1 t3(outp2[5],outp1[5],outp1[3],shift[1]);
MUX2_1 t4(outp2[4],outp1[4],outp1[2],shift[1]);
MUX2_1 t5(outp2[3],outp1[3],outp1[1],shift[1]);
MUX2_1 t6(outp2[2],outp1[2],outp1[0],shift[1]);
MUX2_1 t7(outp2[1],outp1[1],0,shift[1]);
MUX2_1 t8(outp2[0],outp1[0],0,shift[1]);

MUX2_1 m1(outp[7],outp2[7],outp2[3],shift[2]);
MUX2_1 m2(outp[6],outp2[6],outp2[2],shift[2]);
MUX2_1 m3(outp[5],outp2[5],outp2[1],shift[2]);
MUX2_1 m4(outp[4],outp2[4],outp2[0],shift[2]);
MUX2_1 m5(outp[3],outp2[3],0,shift[2]);
MUX2_1 m6(outp[2],outp2[2],0,shift[2]);
MUX2_1 m7(outp[1],outp2[1],0,shift[2]);
MUX2_1 m8(outp[0],outp2[0],0,shift[2]);
*/
endmodule
